// ● 使用列表：查改增删
//   ○ 查询列表长度
//   ○ 查询指定的元素
//   ○ 修改：列表[索引] = 新值
//   ○ 新增：列表.add(新元素)、列表.addAll(新列表)
//   ○ 指定位置添加：列表.insert(索引, 内容');
//   ○ 删除：使用元素删除、使用索引删除
//   ○ 遍历列表：读取出列表中每一个元素

void main() {

  // 规定类型  给列表添加类型  能校验出类型错误
  // 能校验出类型错误
  List<String> names = ['张三', '李四', '王五', '赵六', '田七'];

  print(names);
  print('列表长度: ${names.length}');
  print('列表中第一个元素: ${names[0]}');
  print('列表中第一个元素: ${names.first}');
  print('列表中最后一个元素: ${names[names.length - 1]}');
  print('列表中最后一个元素: ${names.last}');

  // 修改
  names[0] = '小明';
  print("names[0] = '小明', $names");

  // 新增：add  addAll
  names.add('小红');
  names.addAll(['小白', '小黑']);
  print(names);

  // 指定位置添加：列表.insert(索引, 内容');
  names.insert(0, '小花');
  print(names);

  // 删除：使用元素删除、使用索引删除
  bool res = names.remove('小花');
  print(names);
  print(res ? '删除成功' : '删除失败');

  names.removeAt(names.length - 1);
  print('删除最后一项 $names');
  names.removeRange(0, 3);
  print('removeRange(0, 3) $names');

  // 遍历列表：读取出列表中每一个元素
  names.forEach((item) => print(item));

  names.forEach((item) {
    print('遍历的结果：$item');
  });

  // 随机排序(洗牌)
  names.shuffle();
  print(names);
  
}
